Automatic determination of a shipping speed to display for an item

ABSTRACT

A method including generating, by separate instances of a multi-threaded worker system, respective lists of zip codes that fulfillment nodes in a fulfillment network can deliver to via ground shipping within a first shipping time period, based at least in part on preliminary eligibility information and an evaluation of current factors. The method also can include transforming, with an aggregator system, the respective lists of zip codes to generate a mapping from each zip code in the respective lists of zip codes to a respective list of the fulfillment nodes that can deliver via ground shipping to each zip code within the first shipping time period. The method additionally can include receiving a request comprising an input zip code and an input shipping time period. The method further can include, in response to the request, generating a response comprising a list of the fulfillment nodes based on the mapping, such that each fulfillment node in the list of the fulfillment nodes can deliver to the input zip code via ground shipping within the input shipping time period. The method additionally can include determining, in real-time while a webpage for an item loads, a shipping speed to display to a user for the item based at least in part on the list of the fulfillment nodes. Other embodiments are described.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.17/947,818, filed Sep. 19, 2022, which is a continuation of U.S. patentapplication Ser. No. 16/189,884, filed Nov. 13, 2018, which isincorporated herein by reference in its entirety.

TECHNICAL FIELD

This disclosure relates generally to automated determination offulfillment nodes eligible for a specified shipping speed and whether todisplay a specified shipping speed for an item.

BACKGROUND

Users purchasing products from an online retailer are often able tochoose different shipping speeds for their orders as part of a servicelevel agreement with the online provider. For example, users often canchoose between 1-day shipping, 2-day shipping, and/or 3- to 5-dayshipping. The cost of shipping an item can vary depending on variousfactors, such as the location from which the item is to be shipped, thelocation to which the item is to be shipped, and/or the mode of shipment(e.g., ground shipment, air shipment, etc.).

BRIEF DESCRIPTION OF THE DRAWINGS

To facilitate further description of the embodiments, the followingdrawings are provided in which:

FIG. 1 illustrates a front elevational view of a computer system that issuitable for implementing an embodiment of the system disclosed in FIG.3 ;

FIG. 2 illustrates a representative block diagram of an example of theelements included in the circuit boards inside a chassis of the computersystem of FIG. 1 ;

FIG. 3 illustrates a block diagram of a system that can be employed forautomatic determination of fulfillment nodes eligible for a specifiedshipping speed and/or automatic determination of a shipping speed todisplay for an item, according to an embodiment;

FIG. 4 illustrates a flow chart for a method, according to anotherembodiment;

FIG. 5 illustrates a flow chart for a method, according to anotherembodiment; and

FIG. 6 illustrates a flow chart for a block of determining a shippingspeed to display to the user for the item, according to the embodimentof FIG. 5 .

For simplicity and clarity of illustration, the drawing figuresillustrate the general manner of construction, and descriptions anddetails of well-known features and techniques may be omitted to avoidunnecessarily obscuring the present disclosure. Additionally, elementsin the drawing figures are not necessarily drawn to scale. For example,the dimensions of some of the elements in the figures may be exaggeratedrelative to other elements to help improve understanding of embodimentsof the present disclosure. The same reference numerals in differentfigures denote the same elements.

The terms “first,” “second,” “third,” “fourth,” and the like in thedescription and in the claims, if any, are used for distinguishingbetween similar elements and not necessarily for describing a particularsequential or chronological order. It is to be understood that the termsso used are interchangeable under appropriate circumstances such thatthe embodiments described herein are, for example, capable of operationin sequences other than those illustrated or otherwise described herein.Furthermore, the terms “include,” and “have,” and any variationsthereof, are intended to cover a non-exclusive inclusion, such that aprocess, method, system, article, device, or apparatus that comprises alist of elements is not necessarily limited to those elements, but mayinclude other elements not expressly listed or inherent to such process,method, system, article, device, or apparatus.

The terms “left,” “right,” “front,” “back,” “top,” “bottom,” “over,”“under,” and the like in the description and in the claims, if any, areused for descriptive purposes and not necessarily for describingpermanent relative positions. It is to be understood that the terms soused are interchangeable under appropriate circumstances such that theembodiments of the apparatus, methods, and/or articles of manufacturedescribed herein are, for example, capable of operation in otherorientations than those illustrated or otherwise described herein.

The terms “couple,” “coupled,” “couples,” “coupling,” and the likeshould be broadly understood and refer to connecting two or moreelements mechanically and/or otherwise. Two or more electrical elementsmay be electrically coupled together, but not be mechanically orotherwise coupled together. Coupling may be for any length of time,e.g., permanent or semi-permanent or only for an instant. “Electricalcoupling” and the like should be broadly understood and includeelectrical coupling of all types. The absence of the word “removably,”“removable,” and the like near the word “coupled,” and the like does notmean that the coupling, etc. in question is or is not removable.

As defined herein, two or more elements are “integral” if they arecomprised of the same piece of material. As defined herein, two or moreelements are “non-integral” if each is comprised of a different piece ofmaterial.

As defined herein, “approximately” can, in some embodiments, mean withinplus or minus ten percent of the stated value. In other embodiments,“approximately” can mean within plus or minus five percent of the statedvalue. In further embodiments, “approximately” can mean within plus orminus three percent of the stated value. In yet other embodiments,“approximately” can mean within plus or minus one percent of the statedvalue.

As defined herein, “real-time” can, in some embodiments, be defined withrespect to operations carried out as soon as practically possible uponoccurrence of a triggering event. A triggering event can include receiptof data necessary to execute a task or to otherwise process information.Because of delays inherent in transmission and/or in computing speeds,the term “real time” encompasses operations that occur in “near” realtime or somewhat delayed from a triggering event. In a number ofembodiments, “real time” can mean real time less a time delay forprocessing (e.g., determining) and/or transmitting data. The particulartime delay can vary depending on the type and/or amount of the data, theprocessing speeds of the hardware, the transmission capability of thecommunication hardware, the transmission distance, etc. However, in manyembodiments, the time delay can be less than approximately one second,five seconds, ten seconds, thirty seconds, one minute, five minutes, tenminutes, or fifteen minutes.

DESCRIPTION OF EXAMPLES OF EMBODIMENTS

Turning to the drawings, FIG. 1 illustrates an exemplary embodiment of acomputer system 100, all of which or a portion of which can be suitablefor (i) implementing part or all of one or more embodiments of thetechniques, methods, and systems and/or (ii) implementing and/oroperating part or all of one or more embodiments of the non-transitorycomputer readable media described herein. As an example, a different orseparate one of computer system 100 (and its internal components, or oneor more elements of computer system 100) can be suitable forimplementing part or all of the techniques described herein. Computersystem 100 can comprise chassis 102 containing one or more circuitboards (not shown), a Universal Serial Bus (USB) port 112, a CompactDisc Read-Only Memory (CD-ROM) and/or Digital Video Disc (DVD) drive116, and a hard drive 114. A representative block diagram of theelements included on the circuit boards inside chassis 102 is shown inFIG. 2 . A central processing unit (CPU) 210 in FIG. 2 is coupled to asystem bus 214 in FIG. 2 . In various embodiments, the architecture ofCPU 210 can be compliant with any of a variety of commerciallydistributed architecture families.

Continuing with FIG. 2 , system bus 214 also is coupled to memorystorage unit 208 that includes both read only memory (ROM) and randomaccess memory (RAM). Non-volatile portions of memory storage unit 208 orthe ROM can be encoded with a boot code sequence suitable for restoringcomputer system 100 (FIG. 1 ) to a functional state after a systemreset. In addition, memory storage unit 208 can include microcode suchas a Basic Input-Output System (BIOS). In some examples, the one or morememory storage units of the various embodiments disclosed herein caninclude memory storage unit 208, a USB-equipped electronic device (e.g.,an external memory storage unit (not shown) coupled to universal serialbus (USB) port 112 (FIGS. 1-2 )), hard drive 114 (FIGS. 1-2 ), and/orCD-ROM, DVD, Blu-Ray, or other suitable media, such as media configuredto be used in CD-ROM and/or DVD drive 116 (FIGS. 1-2 ). Non-volatile ornon-transitory memory storage unit(s) refer to the portions of thememory storage units(s) that are non-volatile memory and not atransitory signal. In the same or different examples, the one or morememory storage units of the various embodiments disclosed herein caninclude an operating system, which can be a software program thatmanages the hardware and software resources of a computer and/or acomputer network. The operating system can perform basic tasks such as,for example, controlling and allocating memory, prioritizing theprocessing of instructions, controlling input and output devices,facilitating networking, and managing files. Exemplary operating systemscan includes one or more of the following: (i) Microsoft® Windows®operating system (OS) by Microsoft Corp. of Redmond, Washington, UnitedStates of America, (ii) Mac® OS X by Apple Inc. of Cupertino,California, United States of America, (iii) UNIX® OS, and (iv) Linux®OS. Further exemplary operating systems can comprise one of thefollowing: (i) the iOS® operating system by Apple Inc. of Cupertino,California, United States of America, (ii) the Blackberry® operatingsystem by Research In Motion (RIM) of Waterloo, Ontario, Canada, (iii)the WebOS operating system by LG Electronics of Seoul, South Korea, (iv)the Android™ operating system developed by Google, of Mountain View,California, United States of America, (v) the Windows Mobile™ operatingsystem by Microsoft Corp. of Redmond, Washington, United States ofAmerica, or (vi) the Symbian™ operating system by Accenture PLC ofDublin, Ireland.

As used herein, “processor” and/or “processing module” means any type ofcomputational circuit, such as but not limited to a microprocessor, amicrocontroller, a controller, a complex instruction set computing(CISC) microprocessor, a reduced instruction set computing (RISC)microprocessor, a very long instruction word (VLIW) microprocessor, agraphics processor, a digital signal processor, or any other type ofprocessor or processing circuit capable of performing the desiredfunctions. In some examples, the one or more processors of the variousembodiments disclosed herein can comprise CPU 210.

In the depicted embodiment of FIG. 2 , various I/O devices such as adisk controller 204, a graphics adapter 224, a video controller 202, akeyboard adapter 226, a mouse adapter 206, a network adapter 220, andother I/O devices 222 can be coupled to system bus 214. Keyboard adapter226 and mouse adapter 206 are coupled to a keyboard 104 (FIGS. 1-2 ) anda mouse 110 (FIGS. 1-2 ), respectively, of computer system 100 (FIG. 1). While graphics adapter 224 and video controller 202 are indicated asdistinct units in FIG. 2 , video controller 202 can be integrated intographics adapter 224, or vice versa in other embodiments. Videocontroller 202 is suitable for refreshing a monitor 106 (FIGS. 1-2 ) todisplay images on a screen 108 (FIG. 1 ) of computer system 100 (FIG. 1). Disk controller 204 can control hard drive 114 (FIGS. 1-2 ), USB port112 (FIGS. 1-2 ), and CD-ROM and/or DVD drive 116 (FIGS. 1-2 ). In otherembodiments, distinct units can be used to control each of these devicesseparately.

In some embodiments, network adapter 220 can comprise and/or beimplemented as a WNIC (wireless network interface controller) card (notshown) plugged or coupled to an expansion port (not shown) in computersystem 100 (FIG. 1 ). In other embodiments, the WNIC card can be awireless network card built into computer system 100 (FIG. 1 ). Awireless network adapter can be built into computer system 100 (FIG. 1 )by having wireless communication capabilities integrated into themotherboard chipset (not shown), or implemented via one or morededicated wireless communication chips (not shown), connected through aPCI (peripheral component interconnector) or a PCI express bus ofcomputer system 100 (FIG. 1 ) or USB port 112 (FIG. 1 ). In otherembodiments, network adapter 220 can comprise and/or be implemented as awired network interface controller card (not shown).

Although many other components of computer system 100 (FIG. 1 ) are notshown, such components and their interconnection are well known to thoseof ordinary skill in the art. Accordingly, further details concerningthe construction and composition of computer system 100 (FIG. 100 ) andthe circuit boards inside chassis 102 (FIG. 1 ) are not discussedherein.

When computer system 100 in FIG. 1 is running, program instructionsstored on a USB drive in USB port 112, on a CD-ROM or DVD in CD-ROMand/or DVD drive 116, on hard drive 114, or in memory storage unit 208(FIG. 2 ) are executed by CPU 210 (FIG. 2 ). A portion of the programinstructions, stored on these devices, can be suitable for carrying outall or at least part of the techniques described herein. In variousembodiments, computer system 100 can be reprogrammed with one or moremodules, system, applications, and/or databases, such as those describedherein, to convert a general purpose computer to a special purposecomputer. For purposes of illustration, programs and other executableprogram components are shown herein as discrete systems, although it isunderstood that such programs and components may reside at various timesin different storage components of computing device 100, and can beexecuted by CPU 210. Alternatively, or in addition to, the systems andprocedures described herein can be implemented in hardware, or acombination of hardware, software, and/or firmware. For example, one ormore application specific integrated circuits (ASICs) can be programmedto carry out one or more of the systems and procedures described herein.For example, one or more of the programs and/or executable programcomponents described herein can be implemented in one or more ASICs.

Although computer system 100 is illustrated as a desktop computer inFIG. 1 , there can be examples where computer system 100 may take adifferent form factor while still having functional elements similar tothose described for computer system 100. In some embodiments, computersystem 100 may comprise a single computer, a single server, or a clusteror collection of computers or servers, or a cloud of computers orservers. Typically, a cluster or collection of servers can be used whenthe demand on computer system 100 exceeds the reasonable capability of asingle server or computer. In certain embodiments, computer system 100may comprise a portable computer, such as a laptop computer. In certainother embodiments, computer system 100 may comprise a mobile device,such as a smartphone. In certain additional embodiments, computer system100 may comprise an embedded system.

Turning ahead in the drawings, FIG. 3 illustrates a block diagram of asystem 300 that can be employed for automatic determination offulfillment nodes eligible for a specified shipping speed and/orautomatic determination of a shipping speed to display for an item,according to an embodiment. System 300 is merely exemplary andembodiments of the system are not limited to the embodiments presentedherein. The system can be employed in many different embodiments orexamples not specifically depicted or described herein. In someembodiments, certain elements, modules, or systems of system 300 canperform various procedures, processes, and/or activities. In otherembodiments, the procedures, processes, and/or activities can beperformed by other suitable elements, modules, or systems of system 300.System 300 can be implemented with hardware and/or software, asdescribed herein. In some embodiments, part or all of the hardwareand/or software can be conventional, while in these or otherembodiments, part or all of the hardware and/or software can becustomized (e.g., optimized) for implementing part or all of thefunctionality of system 300 described herein.

In many embodiments, system 300 can include a web server 305 and/or ageo system 310. Web server 305 and/or geo system 310 can each be acomputer system, such as computer system 100 (FIG. 1 ), as describedabove, and can each be a single computer, a single server, or a clusteror collection of computers or servers, or a cloud of computers orservers. In another embodiment, a single computer system can host webserver 305 and/or geo system 310. Additional details regarding webserver 305 and/or geo system 310 are described herein.

In some embodiments, web server 305 can be in data communication throughInternet 330 with one or more user computers, such as user computers 340and/or 341. In some embodiments, user computers 340-341 can be used byusers, such as users 350 and 351, which also can be referred to ascustomers, in which case, user computers 340 and 341 can be referred toas customer computers. In many embodiments, web server 305 can host oneor more websites. For example, web server 305 can host a website thatallows users to browse and/or search for items (e.g., products), to additems to an electronic cart, and/or to purchase items, in addition toother suitable activities.

In some embodiments, an internal network that is not open to the publiccan be used for communications between web server 305 and geo system 310within system 300. Accordingly, in some embodiments, geo system 310(and/or the software used by such systems) can refer to a back end ofsystem 300 operated by an operator and/or administrator of system 300,and web server 305 (and/or the software used by such systems) can referto a front end of system 300, as can be accessed and/or used by one ormore users, such as users 350-351, using user computers 340-341,respectively. In these or other embodiments, the operator and/oradministrator of system 300 can manage system 300, the processor(s) ofsystem 300, and/or the memory storage unit(s) of system 300 using theinput device(s) and/or display device(s) of system 300.

In certain embodiments, user computers 340-341 can be desktop computers,laptop computers, a mobile device, and/or other endpoint devices used byone or more users 350 and 351, respectively. A mobile device can referto a portable electronic device (e.g., an electronic device easilyconveyable by hand by a person of average size) with the capability topresent audio and/or visual data (e.g., text, images, videos, music,etc.). For example, a mobile device can include at least one of adigital media player, a cellular telephone (e.g., a smartphone), apersonal digital assistant, a handheld digital computer device (e.g., atablet personal computer device), a laptop computer device (e.g., anotebook computer device, a netbook computer device), a wearable usercomputer device, or another portable computer device with the capabilityto present audio and/or visual data (e.g., images, videos, music, etc.).Thus, in many examples, a mobile device can include a volume and/orweight sufficiently small as to permit the mobile device to be easilyconveyable by hand. For examples, in some embodiments, a mobile devicecan occupy a volume of less than or equal to approximately 1790 cubiccentimeters, 2434 cubic centimeters, 2876 cubic centimeters, 4056 cubiccentimeters, and/or 5752 cubic centimeters. Further, in theseembodiments, a mobile device can weigh less than or equal to 15.6Newtons, 17.8 Newtons, 22.3 Newtons, 31.2 Newtons, and/or 44.5 Newtons.

Exemplary mobile devices can include (i) an iPod®, iPhone®, iTouch®,iPad®, MacBook® or similar product by Apple Inc. of Cupertino,California, United States of America, (ii) a Blackberry® or similarproduct by Research in Motion (RIM) of Waterloo, Ontario, Canada, (iii)a Lumia® or similar product by the Nokia Corporation of Keilaniemi,Espoo, Finland, and/or (iv) a Galaxy™ or similar product by the SamsungGroup of Samsung Town, Seoul, South Korea. Further, in the same ordifferent embodiments, a mobile device can include an electronic deviceconfigured to implement one or more of (i) the iPhone® operating systemby Apple Inc. of Cupertino, California, United States of America, (ii)the Blackberry® operating system by Research In Motion (RIM) ofWaterloo, Ontario, Canada, (iii) the Palm® operating system by Palm,Inc. of Sunnyvale, California, United States, (iv) the Android™operating system developed by the Open Handset Alliance, (v) the WindowsMobile™ operating system by Microsoft Corp. of Redmond, Washington,United States of America, or (vi) the Symbian™ operating system by NokiaCorp. of Keilaniemi, Espoo, Finland.

Further still, the term “wearable user computer device” as used hereincan refer to an electronic device with the capability to present audioand/or visual data (e.g., text, images, videos, music, etc.) that isconfigured to be worn by a user and/or mountable (e.g., fixed) on theuser of the wearable user computer device (e.g., sometimes under or overclothing; and/or sometimes integrated with and/or as clothing and/oranother accessory, such as, for example, a hat, eyeglasses, a wristwatch, shoes, etc.). In many examples, a wearable user computer devicecan include a mobile device, and vice versa. However, a wearable usercomputer device does not necessarily include a mobile device, and viceversa.

In specific examples, a wearable user computer device can include a headmountable wearable user computer device (e.g., one or more headmountable displays, one or more eyeglasses, one or more contact lenses,one or more retinal displays, etc.) or a limb mountable wearable usercomputer device (e.g., a smart watch). In these examples, a headmountable wearable user computer device can be mountable in closeproximity to one or both eyes of a user of the head mountable wearableuser computer device and/or vectored in alignment with a field of viewof the user.

In more specific examples, a head mountable wearable user computerdevice can include (i) Google Glass™ product or a similar product byGoogle Inc. of Menlo Park, California, United States of America; (ii)the Eye Tap™ product, the Laser Eye Tap™ product, or a similar productby ePI Lab of Toronto, Ontario, Canada, and/or (iii) the Raptyr™product, the STAR 1200™ product, the Vuzix Smart Glasses M100™ product,or a similar product by Vuzix Corporation of Rochester, New York, UnitedStates of America. In other specific examples, a head mountable wearableuser computer device can include the Virtual Retinal Display™ product,or similar product by the University of Washington of Seattle,Washington, United States of America. Meanwhile, in further specificexamples, a limb mountable wearable user computer device can include theiWatch™ product, or similar product by Apple Inc. of Cupertino,California, United States of America, the Galaxy Gear or similar productof Samsung Group of Samsung Town, Seoul, South Korea, the Moto 360product or similar product of Motorola of Schaumburg, Illinois, UnitedStates of America, and/or the Zip™ product, One™ product, Flex™ product,Charge™ product, Surge™ product, or similar product by Fitbit Inc. ofSan Francisco, California, United States of America.

In many embodiments, web server 305 and/or geo system 310 can eachinclude one or more input devices (e.g., one or more keyboards, one ormore keypads, one or more pointing devices such as a computer mouse orcomputer mice, one or more touchscreen displays, a microphone, etc.),and/or can each include one or more display devices (e.g., one or moremonitors, one or more touch screen displays, projectors, etc.). In theseor other embodiments, one or more of the input device(s) can be similaror identical to keyboard 104 (FIG. 1 ) and/or a mouse 110 (FIG. 1 ).Further, one or more of the display device(s) can be similar oridentical to monitor 106 (FIG. 1 ) and/or screen 108 (FIG. 1 ). Theinput device(s) and the display device(s) can be coupled to web server305 and/or geo system 310 in a wired manner and/or a wireless manner,and the coupling can be direct and/or indirect, as well as locallyand/or remotely. As an example of an indirect manner (which may or maynot also be a remote manner), a keyboard-video-mouse (KVM) switch can beused to couple the input device(s) and the display device(s) to theprocessor(s) and/or the memory storage unit(s). In some embodiments, theKVM switch also can be part of web server 305 and/or geo system 310. Ina similar manner, the processors and/or the non-transitorycomputer-readable media can be local and/or remote to each other.

Meanwhile, in many embodiments, web server 305 and/or geo system 310also can be configured to communicate with and/or include one or moredatabases, such a database 326, and/or other suitable databases. The oneor more databases can include a product database that containsinformation about products, items, or SKUs (stock keeping units), forexample, among other data as described herein, such as described hereinin further detail. The one or more databases can be stored on one ormore memory storage units (e.g., non-transitory computer readablemedia), which can be similar or identical to the one or more memorystorage units (e.g., non-transitory computer readable media) describedabove with respect to computer system 100 (FIG. 1 ). Also, in someembodiments, for any particular database of the one or more databases,that particular database can be stored on a single memory storage unitor the contents of that particular database can be spread acrossmultiple ones of the memory storage units storing the one or moredatabases, depending on the size of the particular database and/or thestorage capacity of the memory storage units.

The one or more databases can each include a structured (e.g., indexed)collection of data and can be managed by any suitable databasemanagement systems configured to define, create, query, organize,update, and manage database(s). Exemplary database management systemscan include MySQL (Structured Query Language) Database, PostgreSQLDatabase, Microsoft SQL Server Database, Oracle Database, SAP (Systems,Applications, & Products) Database, and IBM DB2 Database.

Meanwhile, communication between web server 305, geo system 310, and/orthe one or more databases can be implemented using any suitable mannerof wired and/or wireless communication. Accordingly, system 300 caninclude any software and/or hardware components configured to implementthe wired and/or wireless communication. Further, the wired and/orwireless communication can be implemented using any one or anycombination of wired and/or wireless communication network topologies(e.g., ring, line, tree, bus, mesh, star, daisy chain, hybrid, etc.)and/or protocols (e.g., personal area network (PAN) protocol(s), localarea network (LAN) protocol(s), wide area network (WAN) protocol(s),cellular network protocol(s), powerline network protocol(s), etc.).Exemplary PAN protocol(s) can include Bluetooth, Zigbee, WirelessUniversal Serial Bus (USB), Z-Wave, etc.; exemplary LAN and/or WANprotocol(s) can include Institute of Electrical and Electronic Engineers(IEEE) 802.3 (also known as Ethernet), IEEE 802.11 (also known as WiFi),etc.; and exemplary wireless cellular network protocol(s) can includeGlobal System for Mobile Communications (GSM), General Packet RadioService (GPRS), Code Division Multiple Access (CDMA), Evolution-DataOptimized (EV-DO), Enhanced Data Rates for GSM Evolution (EDGE),Universal Mobile Telecommunications System (UMTS), Digital EnhancedCordless Telecommunications (DECT), Digital AMPS (IS-136/Time DivisionMultiple Access (TDMA)), Integrated Digital Enhanced Network (iDEN),Evolved High-Speed Packet Access (HSPA+), Long-Term Evolution (LTE),WiMAX, etc. The specific communication software and/or hardwareimplemented can depend on the network topologies and/or protocolsimplemented, and vice versa. In many embodiments, exemplarycommunication hardware can include wired communication hardwareincluding, for example, one or more data buses, such as, for example,universal serial bus(es), one or more networking cables, such as, forexample, coaxial cable(s), optical fiber cable(s), and/or twisted paircable(s), any other suitable data cable, etc. Further exemplarycommunication hardware can include wireless communication hardwareincluding, for example, one or more radio transceivers, one or moreinfrared transceivers, etc. Additional exemplary communication hardwarecan include one or more networking components (e.g.,modulator-demodulator components, gateway components, etc.).

In many embodiments, a business group that operates a website, such asthe website hosted by web server 305 can operate a fulfillment network360. In various embodiments, fulfillment network 360 can include one ormore distribution centers (also referred to as fulfillment nodes,fulfillment centers, or distributors), such as distribution centers361-364. In various embodiments, there can be 5, 10, 15, 20, 40, 50, oranother suitable number of distribution centers. In various embodiments,the items available for ordering through web server 305 can by housed atone or more of the distribution centers (e.g., 361-364) of fulfillmentnetwork 360. In many embodiments, stock keeping units (SKUs) can be usedto track each unique item. An online order for an item submitted by user(e.g., 350-351) can result in a shipment to the user (e.g., 350-351)from one of the distribution centers (e.g., 361-364). Often times, oneor more of the distribution centers (e.g., 361-364) can each have alimited capacity and can carry some of the items, but not all of theitems, that are available for sale through web server 305. As such,stocking every item at every distribution center (e.g., 361-364) offulfillment network 360 can be unfeasible, so certain items can beavailable at some, but not at others, of the distribution centers (e.g.,361-364). The assortment of items stocked at various distributionscenters (e.g., 361-364) across fulfillment network 360 and/or thephysical location of the users (e.g., 350-351) can affect the shippingoptions available and/or the cost of shipping the items to the users(e.g., 350-351).

Users (e.g., 350-351) often do not want to pay an extra amount forshipping beyond the price of the item. When the costs of shipping areabsorbed in the price charged for the item, profit margins can beincreased by minimizing shipping costs. When purchasing an item, users(e.g., 350-351) often prefer to receive assurances about how soon theitem can be delivered. The user (e.g., 350-351) are typically able tochoose different shipping speeds for their orders as part of a servicelevel agreement (SLA) with the provider of the website. For example,users (e.g., 350-351) often can choose between 1-day shipping, 2-dayshipping, and/or 3 to 5-day shipping. The cost of shipping an item canvary depending on various factors, such as the location from which theitem is to be shipped, the location to which the item is to be shipped,the mode of shipment (e.g., ground shipment, air shipment, etc.). Forexample, if the website lists an item as being available with free 2-dayshipping (e.g., with no shipping charge for the two-day delivery), thecost of shipping the item in two days can be lower if the item isshipped by ground shipment to the user (e.g., 350-351) from adistribution center (e.g., 361-364) that is located closer to the userthan if the item is shipped by air shipment to the user (e.g., 350-351)from a distribution center that is located farther away from the user.

Some providers offer a membership program that charges users an annualor monthly fee in exchange for offering many of the items on the website with a free two-day shipping option. The membership program is usedto help cover the increased costs that arise from offering free two-dayshipping. Other providers do not charge for a membership program, butnonetheless make many items available with a free two-day shippingoption. In order to limit shipping costs and be profitable, it can bechallenging to determine which items to make available with a freetwo-day shipping option, when to make the option available on theseitems, and/or to which users (e.g., 350-351) the option will be madeavailable, particularly as the scale involves a fulfillment network(e.g., 360) with many distribution centers (e.g., 361-364), such as morethan 15 distribution centers, that collectively carry a very largenumber of unique items (e.g., millions of unique items). In a number ofembodiments, geo system 310 can be used to curate the assortment ofitems made available on the website and the shipping speed at which theitems are offered, based on the location of the user (e.g., 350-351)and/or a real-time available of the inventory of items.

In many embodiments, geo system 310 can include various systems and/orcomponents. Geo system 310 is merely exemplary and is not limited to theembodiments presented herein. Geo system 310 can be employed in manydifferent embodiments or examples not specifically depicted or describedherein. In some embodiments, certain elements or system of geo system310 can perform various procedures, processes, and/or acts. In otherembodiments, the procedures, processes, and/or acts can be performed byother suitable elements or systems. In many embodiments, the systems ofgeo system 310 can be modules of computing instructions (e.g., softwaremodules) stored at non-transitory computer readable media that operateon one or more processors. In other embodiments, the systems of geosystem 310 can be implemented in hardware. In many embodiments, geosystem 310 can include a user location system 311, an itemclassification system 312, an inventory system 313, a speed availabilitysystem 314, a communication system 315, and/or a zip service system 320.

In some embodiments, user location system 311 can provide a location ofthe user (e.g., 350-351). In many embodiments, the location of the user(e.g., 350-351) can be represented by a zip code for the address atwhich the user (e.g., 350-351) desires to receive shipments. In someembodiments, the zip code can be determined by prompting the user (e.g.,350-351) to input their zip code in the website provided by web server305. In the same or other embodiments, the zip code can be determinedbased on recognizing the user (e.g., 350-351), and there is a zip codestored based on a previous entry by the user (e.g., 350-351). Forexample, if the user (e.g., 350-351) logs into the website, or isotherwise recognized, such as through tracked cookies, etc., the zipcode used for the location of the user (e.g., 350-351) can be a zip codestored in the profile of the user (e.g., 350-351) and/or a zip code towhich the user (e.g., 350-351) previously had an item shipped. In thesame or other embodiments, the zip code can be determined based ongeo-sniffing the current session of the user (e.g., 350-351). Forexample, the geo-sniffing can be based on global positioning system(GPS) data retrieved from the user computer (e.g., 340-341), IP(Internal Protocol) address location data for the user computer (e.g.,340-341), and/or other suitable geolocation methods.

In several embodiments, item classification system 312 can classify eachunique item into one of four geo-classifications. Thesegeo-classifications can be an “always two-day” classification, a “nevertwo-day” classification, a “local geo” classification, and/or a “networkgeo” classification. The classification of items into one of these fourgeo-classifications can be based on rules. For example, the rules can betailored to balance conversion of the items (e.g., item sales) withprofitability. The rules can be implemented in a rules engine.

In a number of embodiments, items classified in the “always two-day”classification can be items in which the high value of the item trumpsthe shipping cost of the item. For example, criteria for classifying anitem in the “always two-day” classification can include that a price ofthe item exceeds a predetermined threshold (e.g., $20, $23, $25, $28,$30, $35, or another suitable value), that a sale margin for the itemexceeds a predetermined threshold (e.g., enough to cover an upgrade toair shipment if ground shipment is not available within two days), thatthe item is sortable, that the item is regular-sized or smaller (e.g.,the item is sortable, and/or a size of the item is less than apredetermined threshold), that the item is air shippable, that the itemis categorized in a high-value department (e.g., apparel, media, books),and/or other suitable criteria. For example, a laptop computer can becategorized in the “always two-day” classification.

In several embodiments, items classified in the “never two-day”classification can be items which can never be delivered in two days.For example, criteria for classifying an item the “never two-day”classification can include that a size of the item exceeds than apredetermined threshold (e.g., non-sortable, and/or the item is bulky),that the item is not air shippable, that the item is sold through storesbut not online, that the item is categorized in a certain department(e.g., photo, e-delivery, freight), and/or other suitable criteria. Forexample, a kayak or piece of furniture can be categorized in the “nevertwo-day” classification.

In a number of embodiments, items classified in the “local geo”classification can be items which can be offered for two-day shippingunder certain conditions, based on the low value of the items. Forexample, criteria for classifying an item the “local geo” classificationcan include that a price of the item is below a predetermined threshold(e.g., $20, $23, $25, $28, $30, $35, or another suitable value), that asale margin for the item is below a predetermined threshold, that theitem is regular sized or smaller (e.g., the item is sortable, and/or asize of the item is less than a predetermined threshold), that the itemis categorized in a certain department (e.g., everyday living), and/orother suitable criteria. For example, everyday consumable items such astrash bags, batteries, baby wipes, etc., can be categorized in the“local geo” classification.

In several embodiments, items classified in the “network geo”classification can be items which can be offered for two-day shippingunder certain conditions. For example, criteria for classifying an itemthe “network geo” classification can include that the item is notclassified under one of the other geo-classifications (e.g., the “alwaystwo-day” classification, the “never two-day” classification, and the“local geo” classification). For example, most items available on thewebsite can be categorized in the “network geo” classification, unlessthe item falls into one of the other categories.

In many embodiments, inventory system 313 can track which items areavailable at each of the distribution centers (e.g., 361-364) infulfillment network 360. In some embodiments, inventory system 313 canreceive information from each of the distribution centers (e.g.,361-364) in fulfillment network 360 to aggregate information, for eachitem, about which the distribution centers (e.g., 361-364) infulfillment network 360 have the item currently available. In severalembodiments, inventory system 313 can be queried with an item (e.g., aSKU) as input, and inventory system 313 can return a list of thedistribution centers (e.g., 361-364) in fulfillment network 360 thatcurrently have the item available.

In a number of embodiments, speed availability system 314 can determinea shipping speed to be displayed to a user (e.g., 350-351) for an item.In many embodiments, the shipping speed can be the fastest shippingspeed to be offered for free (e.g., no additional shipping charge) tothe user (e.g., 350-351), although in some cases, an option to pay forfaster shipping (e.g., pay for air shipment) can be available to theuser (e.g., 350-351) for the item. In several embodiments, speedavailability system 314 can tailor the shipping speed displayed for eachitem and for each user (e.g., 350-351), based on the location (e.g., zipcode) of the user (e.g., 350-351), as shown in FIGS. 5-6 and describedbelow in further detail. In many embodiments, the shipping speed can bedisplayed when the user (e.g., 350-351) views information about theitem. For example, if a user (e.g., 350-351) opens an item page to viewinformation about an item, the item page can include an indication ofwhat shipping speed is available to the user (e.g., 350-351). If speedavailability system 314 determines that the item can be displayed with atwo-day shipping speed for the user (e.g., 350-351), the item page canshow that two-day shipping is available for that item to the user (e.g.,350-351). In many embodiments, the shipping speeds that can be displayedcan be two-day, three to five-day, and/or unavailable (meaning the itemis not available to be shipped to the user at any shipping speed).

In many embodiments, communication system 315 can facilitatecommunications between geo system 310 can other systems, such as webserver 305, fulfillment network 360, and/or zip service system 320.Communication system 315 can perform additional functions, as describedbelow in further detail.

In a number of embodiments, zip service system 320 can track and/orgenerate current information about the availability of the distributioncenters (e.g., 361-364) in fulfillment network 360 to ship to thevarious locations (e.g., zip codes) within the various shipping speedoptions. In several embodiments, zip service system 320 can generate amapping from each zip code to a list of the distribution centers (e.g.,361-364) in fulfillment network 360 that can deliver to the zip codewithin a specified shipping speed (e.g., two-day shipping). In manyembodiments, ground shipment can be used as a criterion when determiningif the distribution centers (e.g., 361-364) in fulfillment network 360can deliver to the zip code within the specified shipping speed. In anumber of embodiments, zip service system 320 can provide an eligibilityservice that can be queried with a zip code and a shipping time period(e.g., shipping speed) as input, and zip service system 320 can return alist of the distribution centers (e.g., 361-364) in fulfillment network360 that can deliver to the zip code via ground shipping within theshipping time period specified in the input query. For example, if zipservice system 320 is queried with a zip code 94041 with an inputshipping time period of two days, zip service system 320 can return alist of the distribution centers (e.g., 361-364) in fulfillment network360 that can deliver any standard order within two days to the 94041 zipcode using ground shipment. In many embodiments, the informationprovided by zip service system 320 can be irrespective of the items tobe shipped, provided that the items are standard sized, such as any itemthat is not a bulky item that would receive a geo-classification in the“never two-day” classification. In several embodiments, the informationprovided by zip service system 320 can be determined in real-time basedon current capacities and/or calendars of the distribution centers(e.g., 361-364) in fulfillment network 360 and/or the carriers that areavailable to be used for the shipment, as shown in FIG. 4 and describedbelow in further detail.

In many embodiments, zip service system 320 can include various systemsand/or components. Zip service system 320 is merely exemplary and is notlimited to the embodiments presented herein. Zip service system 320 canbe employed in many different embodiments or examples not specificallydepicted or described herein. In some embodiments, certain elements orsystem of zip service system 320 can perform various procedures,processes, and/or acts. In other embodiments, the procedures, processes,and/or acts can be performed by other suitable elements or systems. Inmany embodiments, the systems of zip service system 320 can be modulesof computing instructions (e.g., software modules) stored atnon-transitory computer readable media that operate on one or moreprocessors. In other embodiments, the systems of zip service system 320can be implemented in hardware.

In many embodiments, zip service system 320 can include a preprocessingsystem 321, a master system 322, a worker system 323, an aggregatorsystem 324, a communication system 325, and/or database 326. In severalembodiments, preprocessing system 321 can generate preliminaryeligibility information, as describe below in further detail. In anumber of embodiments, master system 322 can initiate and/or triggerprocessing to be performed by other systems in zip service system 320,such as by worker system 323 and/or aggregator system 324. In severalembodiments, worker system 323 can be a multi-threaded system thatoutputs a list of zip codes on which a requested distribution center(e.g., 361-364) can source within a requested speed, based oneligibility, capacities, and/or calendars of the distribution center(e.g., 361-364) and/or the various available carrier methods. In anumber of embodiments, aggregator system 324 can aggregate informationfrom each thread of worker system 323, and transform the information toprovide a mapping that can be used by communication system 325 toprovide the eligibility service of zip service system 320, as describedabove. The systems of zip service system 320 can perform additionalfunctions, as described below in further detail.

Turning ahead in the drawings, FIG. 4 illustrates a flow chart for amethod 400. In some embodiments, method 400 can be a method of providingan automatic determination of fulfillment nodes eligible for a specifiedshipping speed. Method 400 is merely exemplary and is not limited to theembodiments presented herein. Method 400 can be employed in manydifferent embodiments or examples not specifically depicted or describedherein. In some embodiments, the procedures, the processes, and/or theactivities of method 400 can be performed in the order presented. Inother embodiments, the procedures, the processes, and/or the activitiesof method 400 can be performed in any suitable order. In still otherembodiments, one or more of the procedures, the processes, and/or theactivities of method 400 can be combined or skipped.

In many embodiments, zip service system 320 (FIG. 3 ) can be suitable toperform method 400 and/or one or more of the activities of method 400.In these or other embodiments, one or more of the activities of method400 can be implemented as one or more computing instructions configuredto run at one or more processors and configured to be stored at one ormore non-transitory computer readable media. Such non-transitorycomputer readable media can be part of a computer system such as zipservice system 320 (FIG. 3 ). The processor(s) can be similar oridentical to the processor(s) described above with respect to computersystem 100 (FIG. 1 ).

In some embodiments, method 400 and other blocks in method 400 caninclude using a distributed network including distributed memoryarchitecture to perform the associated activity. This distributedarchitecture can reduce the impact on the network and system resourcesto reduce congestion in bottlenecks while still allowing data to beaccessible from a central location.

Referring to FIG. 4 , method 400 can include a block 410 of generating,at a master system, a first list of fulfillment nodes of fulfillmentnodes in a fulfillment network, such that each fulfillment node in thefirst list of fulfillment nodes is enabled to deliver within a firstshipping time period. The master system can be similar or identical tomaster system 322 (FIG. 3 ). The fulfillment network can be similar oridentical to fulfillment network 360 (FIG. 3 ). The fulfillment nodescan be similar or identical to distribution centers 361-364 (FIG. 3 ).In many embodiments, the first shipping time period can be two days. Inother embodiments, the first shipping time period can be another oneday, three days, or three-to-five days. In several embodiments, themaster can be a single-threaded process. In some embodiments, the mastercan generate a list of two-day enabled fulfillment nodes. Thefulfillment nodes that are two-day enabled can be those fulfillmentnodes that it is possible to deliver from in two-days. In manyembodiments, the master system can generate the first list of thefulfillment nodes on a predetermined schedule, such as at least everyfifteen minutes, or every ten minutes.

In several embodiments, method 400 also can include a block 420 ofsending each fulfillment node in the first list of fulfillment nodesfrom the master system to a separate instance of a multi-threaded workersystem as an input fulfillment node. The multi-threaded worker systemcan be similar or identical to worker system 323 (FIG. 3 ). In severalembodiments, each separate instance of the multi-threaded worker systemcan be a separate thread of the multi-threaded worker system, and eachof these separate instances can receive as input a separate fulfillmentnode from the list of fulfillment nodes generated in block 410. In someembodiments, once the master system generates the list of fulfillmentnodes, the master system can send each of the fulfillment nodes in thelist of fulfillment nodes to a separate instance of the multi-threadedworker system to run in parallel. As the number of fulfillment nodes canbe large, in several embodiments, the master system can send thefulfillment nodes to separate instances of the multi-threaded workedsystem in a controlled fashion rather than all at once.

In a number of embodiments, method 400 additionally can include a block430 of generating, at each separate instance of the multi-threadedworker system, a list of zip codes that the input fulfillment node candeliver to via ground shipping within the first shipping time period,based at least in part on preliminary eligibility information and anevaluation of current factors. In many embodiments, the preliminaryeligibility information can include a preliminary mapping from (a) eachcombination of (i) each individual fulfillment node of the fulfillmentnodes, (ii) each individual carrier method of carrier methods, and (iii)each individual transit time of a set of transit times to (b) apreliminary list of zip codes that can be delivered to via groundshipping from the individual fulfillment node using the individualcarrier method within the individual transit time. In some embodiments,the preliminary eligibility information can be generated by retrievingtransit time information from the carrier methods available to be usedat the fulfillment nodes. In several embodiments, the preliminaryeligibility information can be generated at least twice per day. In someembodiments, the preliminary information can be based on static data,such that it does not consider the current conditions of the fulfillmentnodes and/or the carrier methods.

In some embodiments, the preliminary eligibility information can begenerated at least in part by using a transportation map to consolidatea list of fulfillment nodes that are available to deliver by groundshipping within the first shipping time to each of one or more zipcodes. For example, for a particular zip code, there can be fivedifferent fulfillment nodes that can achieve two-day ground shipment tothe zip code, but by showing two of these five fulfillment nodes aseligible for two-day shipment, consolidation to the zip code can beachieved, which can advantageously limit splits in shipments betweenmultiple fulfillment nodes. In many embodiments, the transportation mapcan be generated based on business considerations to attain thisconsolidation. In many embodiments, the transportation map can be joinedwith the preliminary mapping to update the preliminary mapping byconsolidating the fulfillment nodes eligible for two-day shipping inmany cases. In a number of embodiments, the preliminary eligibilityinformation can be stored in a database, such as database 326 (FIG. 3 ).

In many embodiments, the each separate instance of the multi-threadedworker system can take the preliminary eligibility information thatapplies to the input fulfillment node, and use the current factors,based on real-time information, to consider if the fulfillment node andthe carrier methods have the capacity to handle additional orders, asfulfillment nodes can be limited in the number of orders that can behandled, and carrier methods can be limited in the number of items thatcan be shipped. In several embodiments, the current factors can include:(a) pickup calendars for carrier methods at the input fulfillment node,(b) delivery calendars for the carrier methods, (c) capacities of thecarrier methods to handle additional orders, (d) a capacity of the inputfulfillment node to handle additional orders; and/or (e) a processingtime for the input fulfillment node. The carrier methods can be thedifferent methods that can be used to make a shipment, such as thedifferent methods offered by the shipping companies that are used at thefulfillment node. The capacity and/or calendars of the carrier methodscan be used to determine whether the carrier can be used for aparticular transit time. For example, a first carrier method and asecond carrier method can be used for two-day ground shipping from theinput fulfillment node to a particular zip code, such as 94066. Thefirst carrier method can have a 5 pm cutoff shipment time, and thesecond carrier method can have a 12 noon cutoff shipment time. If it isalready 1 pm at the input fulfilment node, the second carrier method canbe past the cutoff shipment time, such that it cannot be used under thecurrent situations for two-day shipping, but the first carrier method isstill available, provided that the fulfillment center has capacity andthe processing time of the fulfillment center would allow for theshipment to be processed for shipment before the 5 pm cutoff time.

In several embodiments, the list of zip codes can be generated for theinput fulfillment node based on these current factors using dynamicdata, and, collectively, the various separate instances of themulti-threaded worker system can generate lists of zip codes for thevarious fulfillment nodes. In many embodiments, the list of zip codesgenerated by each separate instance of the multi-threaded worker systemcan represent those zip codes that the input fulfillment nodes candeliver to via ground shipping within the first shipping time period,such as two-day ground shipping, based on current conditions at thefulfillment nodes and/or carrier methods. In a number of embodiments,the lists of zip codes can be generated by the separate instances of themulti-threaded worker system at least every 15 minutes, and someembodiments can be run at least every 10 minutes. In some embodiments,the multi-threaded worker system can take around two minutes to generatethe list of zip codes for the input fulfillment node.

In several embodiments, method 400 further can include a block 440 ofstoring the lists of zip codes generated by the separate instances ofthe multi-threaded worker system in a database. The database can besimilar or identical to database 326 (FIG. 3 ).

In a number of embodiments, method 400 additionally can include a block450 of transforming, with an aggregator system, the lists of zip codesstored in the database to generate a mapping from each zip code in thelists of zip codes to a list of fulfillment nodes of the fulfillmentnodes that can deliver via ground shipping to the each zip code withinthe first shipping speed. The aggregator system can be similar oridentical to aggregator system 324 (FIG. 3 ). In many embodiments, theaggregator system can be a single-threaded process that pulls theinformation from the database (e.g., 326 (FIG. 3 )) that was generatedby each of the separate instances (e.g., separate threads) of themulti-threaded worker system to create a reverse mapping. Each of thethreads of the multi-threaded worker system can generate a mapping froma fulfillment node to a list of zip codes for the first shipping timeperiod. The aggregator system can transform these mappings to be amapping from each zip code to a list of fulfillment nodes that areavailable currently for shipping to that zip code at the first shippingtime period.

As a simplified example, with a first shipping time period of two days,master system can generate a list of fulfillment nodes that are two-dayeligible, such as FN1, FN2, FN3, and FN 4. A first instance of themulti-threaded worker system can receive an input fulfillment node ofFN1, and can generate a list of zip codes, such as Zip1, Zip2, Zip3, andZip4. A second instance of the multi-threaded worker system can receivean input fulfillment node of FN2, and can generate a list of zip codes,such as Zip1, Zip3, and Zip5. A third instance of the multi-threadedworker system can receive an input fulfillment node of FN3, and cangenerate a list of zip codes, such as Zip2, and Zip4. A fourth instanceof the multi-threaded worker system can receive an input fulfillmentnode of FN4, and can generate a list of zip codes, such as Zip3, and Zip5. The aggregator system can take these inputs and generate mappingsfrom each zip code to the fulfillment nodes, such as a mapping from Zip1to FN1 and FN2; from Zip2 to FN1 and FN3; from Zip3 to FN1, FN2, andFN4; from Zip4 to FN1 and FN3; and from Zip5 to FN2 and FN4.

In a number of embodiments, the lists of zip codes stored in thedatabase can be transformed by the aggregator system to generate themapping at least every 15 minutes, and in some embodiments can betransformed at least every 10 minutes. In some embodiments, themulti-threaded worker system can take less than a minute to transformthe list of zip code to generate the mapping.

In several embodiments, method 400 further can include a block 460 ofstoring the mapping in the database.

In a number of embodiments, method 400 additionally can include a block470 of receiving a request including an input zip code and an inputshipping time period. For example, the request can be received atcommunication system 325 (FIG. 3 ), such as by speed availability system314, to determine which fulfillment nodes were mapped to the input zipcode for the input shipping time period.

In several embodiments, method 400 further can include a block 480 ofgenerating a response to the request. In many embodiments, the responsecan include a second list of fulfillment nodes based on the mappingstored in the database such that each fulfillment node in the list offulfillment nodes can deliver to the input zip code via ground shippingwithin the input shipping time period. For example, communication system325 can provide an eligibility service that queries the mapping storedin the database in block 460 to determine the list of fulfillment nodesthat are mapped to the input zip code. In many embodiments, the responseto can sent to the system that sent the request. In a number ofembodiments, because the dynamic information has been stored recently(e.g., in the last ten minutes or last fifteen minutes in the database(e.g., 326)), the response times provided in block 480 after receivingthe request in block 470 can be very low latency. For example, intesting, 95% of responses were provided within 4 milliseconds ofreceiving the request, and 99% of responses were provided within 13milliseconds of receiving the request.

Turning ahead in the drawings, FIG. 5 illustrates a flow chart for amethod 500. In some embodiments, method 500 can be a method of providingan automatic determination of a shipping speed to display for an item.Method 500 is merely exemplary and is not limited to the embodimentspresented herein. Method 500 can be employed in many differentembodiments or examples not specifically depicted or described herein.In some embodiments, the procedures, the processes, and/or theactivities of method 500 can be performed in the order presented. Inother embodiments, the procedures, the processes, and/or the activitiesof method 500 can be performed in any suitable order. In still otherembodiments, one or more of the procedures, the processes, and/or theactivities of method 500 can be combined or skipped.

In many embodiments, system 300 (FIG. 3 ) and/or geo system 320 (FIG. 3) can be suitable to perform method 500 and/or one or more of theactivities of method 500. In these or other embodiments, one or more ofthe activities of method 500 can be implemented as one or more computinginstructions configured to run at one or more processors and configuredto be stored at one or more non-transitory computer readable media. Suchnon-transitory computer readable media can be part of a computer systemsuch as system 300 (FIG. 3 ) and/or geo system 320 (FIG. 3 ). Theprocessor(s) can be similar or identical to the processor(s) describedabove with respect to computer system 100 (FIG. 1 ).

In some embodiments, method 500 and other blocks in method 500 caninclude using a distributed network including distributed memoryarchitecture to perform the associated activity. This distributedarchitecture can reduce the impact on the network and system resourcesto reduce congestion in bottlenecks while still allowing data to beaccessible from a central location.

Referring to FIG. 5 , method 500 can include a block 510 of determininga zip code of a user using a website that displays items for sale. Inmany embodiments, the website can be hosted by web server 305 (FIG. 3 ).The user can be similar or identical to users 350-351 (FIG. 3 ). Inseveral embodiments, determining the zip code of the user can include atleast one of: (a) receiving the zip code from an input of the user in acurrent session of the user using the website, retrieving a lasttransaction of the user to obtain the zip code, or detecting the zipcode through geo-sniffing the current session of the user using the website.

In several embodiments, method 500 also can include a block 520 ofreceiving a selection by the user to display information about an itemof the items for sale. For example, the user can navigate to an itempage on the web site to display information about the item.

In a number of embodiments, method 500 additionally can include a block530 of retrieving first information including a predeterminedgeo-classification for the item. In many embodiments, thegeo-classification can be similar to the geo-classification describedabove. In some embodiments, the geo-classification for the item can beset to an always two-day classification at least when a sale margin forthe item exceeds a first predetermined margin threshold. For example,the first predetermined margin threshold can be set to an amount thatallows for a profit margin even if the item would be delivered by airshipment. In a number of embodiments, the geo-classification for theitem can be set to a never two-day classification at least when a sizeof the item exceeds a predetermined size threshold. For example, whenthe size of the item results in a bulky classification by carriermethods, the item can be classified in the never two-day classification.In various embodiments, the geo-classification for the item can be setto a local geo classification at least when the sale margin of the itemis less than a second predetermined margin threshold. For example, thesecond predetermined margin threshold can be set such that the marginsfor the items classified in the local geo classification are in thebottom 5, 10, 15, 20, or 25 percent of margins. In several embodiments,the geo-classification for the item otherwise can set to a network geoclassification. In many embodiments, the first information can beretrieved from item classification system 312 (FIG. 3 )

In several embodiments, method 500 further can include a block 540 ofretrieving second information including a list of fulfillment nodes thatcan currently deliver to the zip code of the user within a firstshipping speed via ground shipping. In many embodiments, the firstshipping speed is two days. In many embodiments, the second informationcan be retrieved by calling zip service system 320 (FIG. 3 ), which candetermine the second information as shown in method 400 (FIG. 4 ) anddescribed above.

In a number of embodiments, method 500 additionally can include a block550 of retrieving third information including a node-level inventory forthe item. In several embodiments, the node-level inventory for the itemcan include a second list of fulfillment nodes that currently have theitem available. For example, the third information for a particular SKUcan indicate that the SKU is available at certain fulfillment nodes,such as FN1 and FN3. In many embodiments, the third information can beretrieved from inventory system 313 (FIG. 3 ).

In several embodiments, method 500 further can include a block 560 ofdetermining a shipping speed to display to the user for the item basedon (a) the predetermined geo-classification for the item, (b) the listof fulfillment nodes that can currently deliver to the zip code of theuser within the first shipping speed, and (c) the node-level inventoryfor the item. In many embodiments, block 560 can be implemented as shownin FIG. 6 and described below.

In a number of embodiments, method 500 additionally can include a block570 of facilitating a display of the shipping speed to the user. Inseveral embodiments, the shipping speed can be displayed to the user inan item page for the item.

Turning ahead in the drawings, FIG. 6 illustrates a flow chart for block560 of determining a shipping speed to display to the user for the itembased on (a) the predetermined geo-classification for the item, (b) thelist of fulfillment nodes that can currently deliver to the zip code ofthe user within the first shipping speed, and (c) the node-levelinventory for the item. Block 560 is merely exemplary and is not limitedto the embodiments presented herein. Block 560 can be employed in manydifferent embodiments or examples not specifically depicted or describedherein. In some embodiments, the procedures, the processes, and/or theactivities of block 560 can be performed in the order presented. Inother embodiments, the procedures, the processes, and/or the activitiesof block 560 can be performed in any suitable order. In still otherembodiments, one or more of the procedures, the processes, and/or theactivities of block 560 can be combined or skipped.

Referring to FIG. 5 , block 560 can include a block 605 ofdifferentiating by the predetermined geo-classification of the item inthe first information. When the predetermined geo-classification of theitem is the always two-day classification, the flow chart can proceed toa block 610. Otherwise, when the predetermined geo-classification of theitem is the never two-day classification, the flow chart can proceed toa block 630. Otherwise, when the predetermined geo-classification of theitem is the network geo classification, the flow chart can proceed to ablock 650. Otherwise, when the predetermined geo-classification of theitem is the local geo classification, the flow chart can proceed to ablock 670.

In a number of embodiments, at block 610, when the geo-classification ofthe item is the always two-day classification, the flow chart canproceed to a decision block 611 of determining if the item is in atleast one fulfillment node that is in a two-day enabled fulfillmentnode. If the output of decision block 611 is yes, the flow chart canproceed to a block 621 of setting the shipping speed to two-dayshipping. Otherwise, if the output of decision block 611 is no, the flowchart can proceed to a decision block 612 of determining whether theitem is in the fulfillment network. For example, decision block 612 candetermine if the item is available in any of the fulfillment nodes inthe fulfillment network. If the output of decision block 612 is yes, theflow chart can proceed to a block 622 of setting the shipping speed tothree to five-day shipping. Otherwise, if the output of decision block612 is no, the flow chart can proceed to a block 623 of setting anavailability of the item to unavailable. In many embodiments, when theavailability of the item is set to unavailable, the item can beunavailable for ordering at the current time. In many embodiments, thedeterminations in decision block 611 and/or decision block 612 can beindependent of the content in the second information.

In several embodiments, at block 630, when the geo-classification of theitem is the never two-day classification, the flow chart can proceed toa decision block 632 of determining whether the item is in thefulfillment network. For example, decision block 632 can determine ifthe item is available in any of the fulfillment nodes in the fulfillmentnetwork. If the output of decision block 632 is yes, the flow chart canproceed to a block 642 of setting the shipping speed to three tofive-day shipping. Otherwise, if the output of decision block 632 is no,the flow chart can proceed to a block 643 of setting an availability ofthe item to unavailable. In many embodiments, the determination indecision block 632 can be independent of the content in the secondinformation.

In a number of embodiments, at block 650, when the geo-classification ofthe item is the network geo classification, the flow chart can proceedto a decision block 651 of determining if the list of fulfillment nodesin the first information for two-days at the first shipping speedincludes a match for at least one or more fulfillment nodes in the nodelevel inventory for the item in the third information. In other words,if there is a fulfillment node that is capable of ground shipping to thezip code of the user in two days based on the current conditions, asprovided in the second information, and that fulfillment node includesthe item, as provided in the third information, then there is a match.If the output of decision block 651 is yes, the flow chart can proceedto a block 661 of setting the shipping speed to two-day shipping.Otherwise, if the output of decision block 651 is no, the flow chart canproceed to a decision block 652 of determining whether the item is inthe fulfillment network. For example, decision block 652 can determineif the item is available in any of the fulfillment nodes in thefulfillment network. If the output of decision block 652 is yes, theflow chart can proceed to a block 662 of setting the shipping speed tothree to five-day shipping. Otherwise, if the output of decision block652 is no, the flow chart can proceed to a block 663 of setting anavailability of the item to unavailable.

In several embodiments, at block 670, when the geo-classification of theitem is the local geo classification, the flow chart can proceed to adecision block 671 of determining if the list of fulfillment nodes inthe first information for two-days at the first shipping speed includesa match for at least one or more fulfillment nodes in the node levelinventory for the item in the third information. In other words, ifthere is a fulfillment node that is capable of ground shipping to thezip code of the user in two days based on the current conditions, asprovided in the second information, and that fulfillment node includesthe item, as provided in the third information, then there is a match.If the output of decision block 671 is yes, the flow chart can proceedto a block 681 of setting the shipping speed to two-day shipping.Otherwise, if the output of decision block 671 is no, the flow chart canproceed to a decision block 652 of determining whether the item is in alocal geo discoverable fulfillment node.

In some embodiments, certain fulfillment nodes can be designated as alocal geo discoverable fulfillment node, which can allow local geo itemsto be shipped using ground shipping from the fulfillment node inthree-to-five days. For example, if a fulfillment node FN1 has acapacity issue, it can be removed from the second information as atwo-day capable fulfillment node under the current conditions, based onthe capacity issue. If fulfillment node FN1 houses certain local geoitems that are not available at other fulfillment nodes in thefulfillment network, these items would be listed as unavailable iffulfillment node FN1 were not designated as a local geo discoverablefulfillment node. Fulfillment node thus can be designated as a local geodiscoverable fulfillment node in order to allow the local geo itemsavailable solely at fulfillment node FN1 to be made available with ashipping speed of three to five-day shipping instead of beingunavailable. In several embodiments, the second information can includean indication of the fulfillment node is designated as a local geodiscoverable fulfillment node. If the output of decision block 672 isyes, the flow chart can proceed to a block 682 of setting the shippingspeed to three to five-day shipping. Otherwise, if the output ofdecision block 672 is no, the flow chart can proceed to a block 683 ofsetting an availability of the item to unavailable.

In various embodiments, each of the fulfillment nodes can be designatedas to whether the fulfillment node can handle network geo items and/orlocal geo items. In many embodiments, this information can be providedin the second information for each of the fulfillment nodes in the listof fulfillment nodes. In many embodiments, the determinations indecision block 651 and/or decision block 671 further can involvedetermining if a matching fulfillment node also matches thepredetermined geo-classification of the item in the first information,and finding matches when this additional condition is satisfied.

As an example, for an item A, with a zip code of 94404 for the user, thefirst information can include that the predetermined geo-classificationof the item is network geo. The second information can include a list offulfillment nodes that are currently capable of shipping in two days tozip code 94404, such as FN1, FN2, and FN3, and each of these fulfillmentnodes can be designated as a network geo-capable fulfillment node. Thethird information can indicate that item A is available at fulfillmentnode FN3. In this case, there is a match at FN3 between the secondinformation and the third information, so the shipping speed can be setto two-day shipping, such that two-day shipping can be shown for item Ato the user. If instead the third information indicate that item A isavailable at fulfillment node FN4, the shipping speed would not be setto two-day shipping, but would instead be set to three to five-dayshipping. The shipping speed can be different for a different user in adifferent zip code. The shipping speed can be different for a differentitem to be shipping to the user. The shipping speed is thus bedynamically curated for the item and zip code of the user, based oncurrent, real-time conditions.

Returning to FIG. 3 , in several embodiments, web server 305 can atleast partially perform block 520 (FIG. 5 ) of receiving a selection bythe user to display information about an item of the items for saleand/or block 570 (FIG. 5 ) of facilitating a display of the shippingspeed to the user.

In a number of embodiments, user location system 311 can at leastpartially perform block 510 (FIG. 5 ) of determining a zip code of auser using a website that displays items for sale.

In several embodiments, item classification system 312 can at leastpartially perform block 530 (FIG. 5 ) of retrieving first informationincluding a predetermined geo-classification for the item.

In a number of embodiments, inventory system 313 can at least partiallyperform block 550 (FIG. 5 ) of retrieving third information including anode-level inventory for the item.

In several embodiments, speed availability system 314 can at leastpartially perform block 560 (FIG. 5 ) of determining a shipping speed todisplay to the user for the item based on (a) the predeterminedgeo-classification for the item, (b) the list of fulfillment nodes thatcan currently deliver to the zip code of the user within the firstshipping speed, and (c) the node-level inventory for the item.

In a number of embodiments, inventory system 315 can at least partiallyperform block 520 (FIG. 5 ) of receiving a selection by the user todisplay information about an item of the items for sale, block 530 (FIG.5 ) of retrieving first information including a predeterminedgeo-classification for the item, block 540 (FIG. 5 ) of retrievingsecond information including a list of fulfillment nodes that cancurrently deliver to the zip code of the user within a first shippingspeed via ground shipping, block 550 (FIG. 5 ) of retrieving thirdinformation including a node-level inventory for the item, and/or block570 (FIG. 5 ) of facilitating a display of the shipping speed to theuser.

In several embodiments, preprocessing system 321 can at least partiallyperform generating the preliminary eligibility information.

In a number of embodiments, master system 322 can at least partiallyperform block 410 (FIG. 4 ) of generating, at a master system, a firstlist of fulfillment nodes of fulfillment nodes in a fulfillment network,such that each fulfillment node in the first list of fulfillment nodesis enabled to deliver within a first shipping time period and/or block420 (FIG. 4 ) of sending each fulfillment node in the first list offulfillment nodes from the master system to a separate instance of amulti-threaded worker system as an input fulfillment node.

In several embodiments, worker system 323 can at least partially performblock 420 (FIG. 4 ) of sending each fulfillment node in the first listof fulfillment nodes from the master system to a separate instance of amulti-threaded worker system as an input fulfillment node, block 430(FIG. 4 ) of generating, at each separate instance of the multi-threadedworker system, a list of zip codes that the input fulfillment node candeliver to via ground shipping within the first shipping time period,based at least in part on preliminary eligibility information and anevaluation of current factors, and/or block 440 (FIG. 4 ) of storing thelists of zip codes generated by the separate instances of themulti-threaded worker system in a database.

In a number of embodiments, aggregator system 324 can at least partiallyperform block 450 (FIG. 4 ) of transforming, with an aggregator system,the lists of zip codes stored in the database to generate a mapping fromeach zip code in the lists of zip codes to a list of fulfillment nodesof the fulfillment nodes that can deliver via ground shipping to theeach zip code within the first shipping speed and/or block 460 (FIG. 4 )of storing the mapping in the database.

In several embodiments, communication system 325 can at least partiallyperform block 470 (FIG. 4 ) of receiving a request including an inputzip code and an input shipping time period, block 480 (FIG. 4 ) ofgenerating a response to the request, and/or block 540 (FIG. 5 ) ofretrieving second information including a list of fulfillment nodes thatcan currently deliver to the zip code of the user within a firstshipping speed via ground shipping.

In many embodiments, the techniques described herein can provide severaltechnological improvements. In some embodiments, the techniquesdescribed herein can provide for automatic determination of fulfillmentnodes eligible for a specified shipping speed. In a number ofembodiments, the techniques described herein can provide for automaticdetermination of a shipping speed to display for an item. In manyembodiments, the techniques described herein can beneficially makedeterminations based on real-time information that describes currentconditions. In a number of embodiments, the techniques described hereincan advantageously enable efficient utilization of a fulfillment network(e.g., 360 (FIG. 3 )) by dynamically curating assortment and/or shippingspeed based on the location of the user (e.g., 350-351 (FIG. 3 )), whichcan beneficially result in a reduction in shipping costs.

In many embodiments, the techniques described herein can beneficiallycontrol the shipping speed offered to the user (e.g., 350-351 (FIG. 3 ))based on inventory available at the distribution centers (e.g., 361-364(FIG. 3 )) of the fulfillment network (e.g., 360 (FIG. 3 )) to reduceshipping costs. For example, dynamic two-day eligibility can bedetermined based on the zip code of the user (e.g., 350-351 (FIG. 3 )).In many embodiments, the techniques described herein can reduce shippingupgrades (e.g., to air shipment) being used to meet the SLA promised tothe user (e.g., 350-351 (FIG. 3 )). In several embodiments, thetechniques described herein can reduce splits by consolidating thefulfillment nodes (e.g., distribution centers 361-364 (FIG. 3 )) in thetransportation map.

In a number of embodiments, the techniques described herein canadvantageously provide a consistent user experience by determiningshipping speed dynamically for each item using a centralized geo system(e.g., 310 (FIG. 3 )) across different applications that query thisinformation, such as item pages, search pages, etc. In variousembodiments, the techniques described herein can dynamically determinewhether to offer free two-day shipping while the page loads within verylow latency response times. In many embodiments, the techniquesdescribed herein can perform the dynamic determinations based on currentinformation, such as the capacity of the fulfillment nodes, the capacityof the carriers, the carrier pickup and delivery calendars, and othersuitable information. In some embodiments, the techniques providedherein can beneficially reduce shipping costs while continuing to offera very large number of items to most users with free two-day shipping.For example, over two million items can be offered with two-dayshipping, although not necessarily for 100% of the users.

In many embodiments, the techniques described herein can be usedcontinuously at a scale that cannot be handled using manual techniques.For example, the number of monthly visits to the website can exceed onehundred million, the number of registered users to the website canexceed ten million, and/or the number of items sold on the website canexceed ten million.

In a number of embodiments, the techniques described herein can solve atechnical problem that arises only within the realm of computernetworks, as determining whether to offer two-day shipping on a websitethat makes available items does not exist outside the realm of computernetworks. Moreover, the techniques described herein can solve atechnical problem that cannot be solved outside the context of computernetworks. Specifically, the techniques described herein cannot be usedoutside the context of computer networks, in view of a lack of data, andbecause the online website that is part of the techniques describedherein would not exist.

Various embodiments can include a system including one or moreprocessors and one or more non-transitory computer-readable mediastoring computing instructions configured to run on the one moreprocessors and perform certain acts. The acts can include generating, ata master system, a first list of fulfillment nodes of fulfillment nodesin a fulfillment network, such that each fulfillment node in the firstlist of fulfillment nodes is enabled to deliver within a first shippingtime period. The acts also can include sending each fulfillment node inthe first list of fulfillment nodes from the master system to a separateinstance of a multi-threaded worker system as an input fulfillment node.The acts additionally can include generating, at each separate instanceof the multi-threaded worker system, a list of zip codes that the inputfulfillment node can deliver to via ground shipping within the firstshipping time period, based at least in part on preliminary eligibilityinformation and an evaluation of current factors. The acts further caninclude storing the lists of zip codes generated by the separateinstances of the multi-threaded worker system in a database. The actsadditionally can include transforming, with an aggregator system, thelists of zip codes stored in the database to generate a mapping fromeach zip code in the lists of zip codes to a list of fulfillment nodesof the fulfillment nodes that can deliver via ground shipping to theeach zip code within the first shipping speed. The acts further caninclude storing the mapping in the database. The acts additionally caninclude receiving a request including an input zip code and an inputshipping time period. The acts further can include generating a responseto the request. The response can include a second list of fulfillmentnodes based on the mapping stored in the database, such that eachfulfillment node in the second list of fulfillment nodes can deliver tothe input zip code via ground shipping within the input shipping timeperiod.

A number of embodiments can include a method being implemented viaexecution of computing instructions configured to run at one or moreprocessors and stored at one or more non-transitory computer-readablemedia. The method can include generating, at a master system, a firstlist of fulfillment nodes of fulfillment nodes in a fulfillment network,such that each fulfillment node in the first list of fulfillment nodesis enabled to deliver within a first shipping time period. The methodalso can include sending each fulfillment node in the first list offulfillment nodes from the master system to a separate instance of amulti-threaded worker system as an input fulfillment node. The methodadditionally can include generating, at each separate instance of themulti-threaded worker system, a list of zip codes that the inputfulfillment node can deliver to via ground shipping within the firstshipping time period, based at least in part on preliminary eligibilityinformation and an evaluation of current factors. The method further caninclude storing the lists of zip codes generated by the separateinstances of the multi-threaded worker system in a database. The methodadditionally can include transforming, with an aggregator system, thelists of zip codes stored in the database to generate a mapping fromeach zip code in the lists of zip codes to a list of fulfillment nodesof the fulfillment nodes that can deliver via ground shipping to theeach zip code within the first shipping speed. The method further caninclude storing the mapping in the database. The method additionally caninclude receiving a request including an input zip code and an inputshipping time period. The method further can include generating aresponse to the request. The response can include a second list offulfillment nodes based on the mapping stored in the database, such thateach fulfillment node in the second list of fulfillment nodes candeliver to the input zip code via ground shipping within the inputshipping time period.

Various embodiments can include a system including one or moreprocessors and one or more non-transitory computer-readable mediastoring computing instructions configured to run on the one moreprocessors and perform certain acts. The acts can include determining azip code of a user using a website that displays items for sale. Theacts also can include receiving a selection by the user to displayinformation about an item of the items for sale. The acts additionallycan include retrieving first information including a predeterminedgeo-classification for the item. The acts further can include retrievingsecond information including a list of fulfillment nodes that cancurrently deliver to the zip code of the user within a first shippingspeed via ground shipping. The acts additionally can include retrievingthird information including a node-level inventory for the item. Theacts further can include determining a shipping speed to display to theuser for the item based on (a) the predetermined geo-classification forthe item, (b) the list of fulfillment nodes that can currently deliverto the zip code of the user within the first shipping speed, and (c) thenode-level inventory for the item. The acts additionally can includefacilitating a display of the shipping speed to the user.

A number of embodiments can include a method being implemented viaexecution of computing instructions configured to run at one or moreprocessors and stored at one or more non-transitory computer-readablemedia. The method can include determining a zip code of a user using awebsite that displays items for sale. The method also can includereceiving a selection by the user to display information about an itemof the items for sale. The method additionally can include retrievingfirst information including a predetermined geo-classification for theitem. The method further can include retrieving second informationincluding a list of fulfillment nodes that can currently deliver to thezip code of the user within a first shipping speed via ground shipping.The method additionally can include retrieving third informationincluding a node-level inventory for the item. The method further caninclude determining a shipping speed to display to the user for the itembased on (a) the predetermined geo-classification for the item, (b) thelist of fulfillment nodes that can currently deliver to the zip code ofthe user within the first shipping speed, and (c) the node-levelinventory for the item. The method additionally can include facilitatinga display of the shipping speed to the user.

Various embodiments can include a system including one or moreprocessors and one or more non-transitory computer-readable mediastoring computing instructions configured to run on the one moreprocessors and perform certain acts. The acts can include determining azip code of a user using a website that displays items for sale.Determining the zip code of the user can include determining the zipcode of the user through at least one of using tracking cookies for theuser using the website or geo-sniffing a current session of the userusing the website. The acts also can include receiving a selection bythe user to display information about an item of the items for sale. Theacts additionally can include determining a shipping speed to display tothe user for the item based on (a) a geo-classification for the item,(b) a list of fulfillment nodes that can currently deliver to the zipcode of the user within a first shipping speed, and (c) a node-levelinventory for the item. The acts further can include facilitating adisplay of the shipping speed to the user. The geo-classification forthe item is a first classification at least when a sale margin for theitem exceeds a first predetermined margin threshold. Thegeo-classification for the item is a second classification at least whena size of the item exceeds a predetermined size threshold.

A number of embodiments can include a method being implemented viaexecution of computing instructions configured to run at one or moreprocessors and stored at one or more non-transitory computer-readablemedia. The method can include determining a zip code of a user using awebsite that displays items for sale. Determining the zip code of theuser can include determining the zip code of the user through at leastone of using tracking cookies for the user using the web site orgeo-sniffing a current session of the user using the website. The methodalso can include receiving a selection by the user to displayinformation about an item of the items for sale. The method additionallycan include determining a shipping speed to display to the user for theitem based on (a) a geo-classification for the item, (b) a list offulfillment nodes that can currently deliver to the zip code of the userwithin a first shipping speed, and (c) a node-level inventory for theitem. The method further can include facilitating a display of theshipping speed to the user. The geo-classification for the item is afirst classification at least when a sale margin for the item exceeds afirst predetermined margin threshold. The geo-classification for theitem is a second classification at least when a size of the item exceedsa predetermined size threshold.

Various embodiments can include a system including one or moreprocessors and one or more non-transitory computer-readable mediastoring computing instructions that, when executed on the one or moreprocessors, cause the one or more processors to perform operationscomprising. The operations can include generating, by separate instancesof a multi-threaded worker system, respective lists of zip codes thatfulfillment nodes in a fulfillment network can deliver to via groundshipping within a first shipping time period, based at least in part onpreliminary eligibility information and an evaluation of currentfactors. The operations also can include transforming, with anaggregator system, the respective lists of zip codes to generate amapping from each zip code in the respective lists of zip codes to arespective list of the fulfillment nodes that can deliver via groundshipping to each zip code within the first shipping time period. Theoperations additionally can include receiving a request comprising aninput zip code and an input shipping time period. The operations furthercan include, in response to the request, generating a responsecomprising a list of the fulfillment nodes based on the mapping, suchthat each fulfillment node in the list of the fulfillment nodes candeliver to the input zip code via ground shipping within the inputshipping time period. The operations additionally can includedetermining, in real-time while a webpage for an item loads, a shippingspeed to display to a user for the item based at least in part on thelist of the fulfillment nodes.

A number of embodiments can include a method implemented via executionof computing instructions configured to run at one or more processorsand stored at one or more non-transitory computer-readable media. Themethod can include generating, by separate instances of a multi-threadedworker system, respective lists of zip codes that fulfillment nodes in afulfillment network can deliver to via ground shipping within a firstshipping time period, based at least in part on preliminary eligibilityinformation and an evaluation of current factors. The method also caninclude transforming, with an aggregator system, the respective lists ofzip codes to generate a mapping from each zip code in the respectivelists of zip codes to a respective list of the fulfillment nodes thatcan deliver via ground shipping to each zip code within the firstshipping time period. The method additionally can include receiving arequest comprising an input zip code and an input shipping time period.The method further can include, in response to the request, generating aresponse comprising a list of the fulfillment nodes based on themapping, such that each fulfillment node in the list of the fulfillmentnodes can deliver to the input zip code via ground shipping within theinput shipping time period. The method additionally can includedetermining, in real-time while a webpage for an item loads, a shippingspeed to display to a user for the item based at least in part on thelist of the fulfillment nodes.

Although automatic determination of fulfillment nodes eligible for aspecified shipping speed and/or automatic determination of a shippingspeed to display for an item has been described with reference tospecific embodiments, it will be understood by those skilled in the artthat various changes may be made without departing from the spirit orscope of the disclosure. Accordingly, the disclosure of embodiments isintended to be illustrative of the scope of the disclosure and is notintended to be limiting. It is intended that the scope of the disclosureshall be limited only to the extent required by the appended claims. Forexample, to one of ordinary skill in the art, it will be readilyapparent that any element of FIGS. 1-6 may be modified, and that theforegoing discussion of certain of these embodiments does notnecessarily represent a complete description of all possibleembodiments. For example, one or more of the procedures, processes, oractivities of FIGS. 4-6 may include different procedures, processes,and/or activities and be performed by many different modules, in manydifferent orders, and/or one or more of the procedures, processes, oractivities of FIGS. 4-6 may include one or more of the procedures,processes, or activities of another different one of FIGS. 4-6 . Asanother example, the systems within web server 305, geo system 310,and/or zip service system 320 in FIG. 3 can be interchanged or otherwisemodified.

Replacement of one or more claimed elements constitutes reconstructionand not repair. Additionally, benefits, other advantages, and solutionsto problems have been described with regard to specific embodiments. Thebenefits, advantages, solutions to problems, and any element or elementsthat may cause any benefit, advantage, or solution to occur or becomemore pronounced, however, are not to be construed as critical, required,or essential features or elements of any or all of the claims, unlesssuch benefits, advantages, solutions, or elements are stated in suchclaim.

Moreover, embodiments and limitations disclosed herein are not dedicatedto the public under the doctrine of dedication if the embodiments and/orlimitations: (1) are not expressly claimed in the claims; and (2) are orare potentially equivalents of express elements and/or limitations inthe claims under the doctrine of equivalents.

What is claimed is:
 1. A system comprising: one or more processors; and one or more non-transitory computer-readable media storing computing instructions that, when executed on the one or more processors, cause the one or more processors to perform operations comprising: generating, by separate instances of a multi-threaded worker system, respective lists of zip codes that fulfillment nodes in a fulfillment network can deliver to via ground shipping within a first shipping time period, based at least in part on preliminary eligibility information and an evaluation of current factors; transforming, with an aggregator system, the respective lists of zip codes to generate a mapping from each zip code in the respective lists of zip codes to a respective list of the fulfillment nodes that can deliver via ground shipping to each zip code within the first shipping time period; receiving a request comprising an input zip code and an input shipping time period; in response to the request, generating a response comprising a list of the fulfillment nodes based on the mapping, such that each fulfillment node in the list of the fulfillment nodes can deliver to the input zip code via ground shipping within the input shipping time period; and determining, in real-time while a webpage for an item loads, a shipping speed to display to a user for the item based at least in part on the list of the fulfillment nodes.
 2. The system of claim 1, wherein determining the shipping speed to display to the user for the item is further based on a geo-classification for the item.
 3. The system of claim 2, wherein the shipping speed is set to two-day shipping when (1) the geo-classification for the item is an always two-day classification and (2) a node-level inventory for the item includes at least one fulfillment node of the fulfillment nodes in the fulfillment network that is in a two-day enabled fulfillment node.
 4. The system of claim 1, wherein the preliminary eligibility information comprises a preliminary mapping from (a) each combination of (i) each individual fulfillment node of the fulfillment nodes, (ii) each individual carrier method of carrier methods, and (iii) each individual transit time of a set of transit times to (b) a preliminary list of zip codes that can be delivered to via ground shipping from the individual fulfillment node using the individual carrier method within the individual transit time.
 5. The system of claim 4, wherein the preliminary eligibility information is generated at least in part by using a transportation map to consolidate a list of fulfillment nodes that are available to deliver by ground shipping within the first shipping time period to each of one or more zip codes.
 6. The system of claim 1, wherein the current factors comprise: (a) pickup calendars for carrier methods at the fulfillment nodes, (b) delivery calendars for the carrier methods, and (c) capacities of the carrier methods to handle additional orders.
 7. The system of claim 6, wherein the current factors further comprise respective capacities of the fulfillment nodes to handle additional orders.
 8. The system of claim 6, wherein the current factors further comprise respective processing times for the fulfillment nodes.
 9. The system of claim 1, wherein the respective lists of zip codes are generated by the separate instances of the multi-threaded worker system at least every 15 minutes.
 10. The system of claim 1, wherein the respective lists of zip codes are transformed by the aggregator system to generate the mapping at least every 15 minutes.
 11. A method implemented via execution of computing instructions configured to run at one or more processors and stored at one or more non-transitory computer-readable media, the method comprising: generating, by separate instances of a multi-threaded worker system, respective lists of zip codes that fulfillment nodes in a fulfillment network can deliver to via ground shipping within a first shipping time period, based at least in part on preliminary eligibility information and an evaluation of current factors; transforming, with an aggregator system, the respective lists of zip codes to generate a mapping from each zip code in the respective lists of zip codes to a respective list of the fulfillment nodes that can deliver via ground shipping to each zip code within the first shipping time period; receiving a request comprising an input zip code and an input shipping time period; in response to the request, generating a response comprising a list of the fulfillment nodes based on the mapping, such that each fulfillment node in the list of the fulfillment nodes can deliver to the input zip code via ground shipping within the input shipping time period; and determining, in real-time while a webpage for an item loads, a shipping speed to display to a user for the item based at least in part on the list of the fulfillment nodes.
 12. The method of claim 11, wherein determining the shipping speed to display to the user for the item is further based on a geo-classification for the item.
 13. The method of claim 12, wherein the shipping speed is set to two-day shipping when (1) the geo-classification for the item is an always two-day classification and (2) a node-level inventory for the item includes at least one fulfillment node of the fulfillment nodes in the fulfillment network that is in a two-day enabled fulfillment node.
 14. The method of claim 11, wherein the preliminary eligibility information comprises a preliminary mapping from (a) each combination of (i) each individual fulfillment node of the fulfillment nodes, (ii) each individual carrier method of carrier methods, and (iii) each individual transit time of a set of transit times to (b) a preliminary list of zip codes that can be delivered to via ground shipping from the individual fulfillment node using the individual carrier method within the individual transit time.
 15. The method of claim 14, wherein the preliminary eligibility information is generated at least in part by using a transportation map to consolidate a list of fulfillment nodes that are available to deliver by ground shipping within the first shipping time period to each of one or more zip codes.
 16. The method of claim 11, wherein the current factors comprise: (a) pickup calendars for carrier methods at the fulfillment nodes, (b) delivery calendars for the carrier methods, and (c) capacities of the carrier methods to handle additional orders.
 17. The method of claim 16, wherein the current factors further comprise respective capacities of the fulfillment nodes to handle additional orders.
 18. The method of claim 16, wherein the current factors further comprise respective processing times for the fulfillment nodes.
 19. The method of claim 11, wherein the respective lists of zip codes are generated by the separate instances of the multi-threaded worker system at least every 15 minutes.
 20. The method of claim 11, wherein the respective lists of zip codes are transformed by the aggregator system to generate the mapping at least every 15 minutes. 